package com.tangyuan.vo;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

@lombok.NoArgsConstructor
@lombok.Data
public class Jrtt {

    @JsonProperty("has_more")
    private Boolean hasMore;
    @JsonProperty("message")
    private String message;
    @JsonProperty("data")
    private List<DataDTO> data;
    @JsonProperty("next")
    private NextDTO next;
    @JsonProperty("offset")
    private Integer offset;

    @lombok.NoArgsConstructor
    @lombok.Data
    public static class NextDTO {
        @JsonProperty("max_behot_time")
        private Integer maxBehotTime;
    }

    @lombok.NoArgsConstructor
    @lombok.Data
    public static class DataDTO {
        @JsonProperty("Abstract")
        private String abstractX;
        @JsonProperty("action_extra")
        private String actionExtra;
        @JsonProperty("action_list")
        private List<ActionListDTO> actionList;
        @JsonProperty("aggr_type")
        private Integer aggrType;
        @JsonProperty("article_alt_url")
        private String articleAltUrl;
        @JsonProperty("article_sub_type")
        private Integer articleSubType;
        @JsonProperty("article_type")
        private Integer articleType;
        @JsonProperty("article_url")
        private String articleUrl;
        @JsonProperty("article_version")
        private Integer articleVersion;
        @JsonProperty("ban_comment")
        private Boolean banComment;
        @JsonProperty("ban_danmaku")
        private Boolean banDanmaku;
        @JsonProperty("behot_time")
        private Integer behotTime;
        @JsonProperty("bury_count")
        private Integer buryCount;
        @JsonProperty("bury_style_show")
        private Integer buryStyleShow;
        @JsonProperty("cell_flag")
        private Integer cellFlag;
        @JsonProperty("cell_layout_style")
        private Integer cellLayoutStyle;
        @JsonProperty("cell_type")
        private Integer cellType;
        @JsonProperty("city")
        private String city;
        @JsonProperty("comment_count")
        private Integer commentCount;
        @JsonProperty("common_raw_data")
        private String commonRawData;
        @JsonProperty("content_hash")
        private String contentHash;
        @JsonProperty("cursor")
        private Long cursor;
        @JsonProperty("data_type")
        private Integer dataType;
        @JsonProperty("detail_content")
        private String detailContent;
        @JsonProperty("digg_count")
        private Integer diggCount;
        @JsonProperty("disallow_web_transform")
        private Integer disallowWebTransform;
        @JsonProperty("display_url")
        private String displayUrl;
        @JsonProperty("filter_words")
        private FilterWordsDTO filterWords;
        @JsonProperty("forward_info")
        private ForwardInfoDTO forwardInfo;
        @JsonProperty("gallary_image_count")
        private Integer gallaryImageCount;
        @JsonProperty("group_flags")
        private Integer groupFlags;
        @JsonProperty("group_id")
        private String groupId;
        @JsonProperty("group_source")
        private Integer groupSource;
        @JsonProperty("group_type")
        private Integer groupType;
        @JsonProperty("has_image")
        private Boolean hasImage;
        @JsonProperty("has_m3u8_video")
        private Boolean hasM3u8Video;
        @JsonProperty("has_mp4_video")
        private Boolean hasMp4Video;
        @JsonProperty("has_video")
        private Boolean hasVideo;
        @JsonProperty("hot")
        private Integer hot;
        @JsonProperty("id")
        private String id;
        @JsonProperty("image_list")
        private List<ImageListDTO> imageList;
        @JsonProperty("image_type")
        private String imageType;
        @JsonProperty("info_desc")
        private String infoDesc;
        @JsonProperty("item_id")
        private String itemId;
        @JsonProperty("item_version")
        private Integer itemVersion;
        @JsonProperty("keywords")
        private String keywords;
        @JsonProperty("label")
        private String label;
        @JsonProperty("label_style")
        private Integer labelStyle;
        @JsonProperty("level")
        private Integer level;
        @JsonProperty("like_count")
        private Integer likeCount;
        @JsonProperty("log_pb")
        private LogPbDTO logPb;
        @JsonProperty("media_info")
        private MediaInfoDTO mediaInfo;
        @JsonProperty("media_name")
        private String mediaName;
        @JsonProperty("middle_image")
        private MiddleImageDTO middleImage;
        @JsonProperty("natant_level")
        private Integer natantLevel;
        @JsonProperty("need_client_impr_recycle")
        private Integer needClientImprRecycle;
        @JsonProperty("open_url")
        private String openUrl;
        @JsonProperty("optional_data")
        private OptionalDataDTO optionalData;
        @JsonProperty("preload_web")
        private Integer preloadWeb;
        @JsonProperty("publish_time")
        private Long publishTime;
        @JsonProperty("raw_data")
        private String rawData;
        @JsonProperty("read_count")
        private Integer readCount;
        @JsonProperty("reason")
        private String reason;
        @JsonProperty("reback_flag")
        private Integer rebackFlag;
        @JsonProperty("repin_count")
        private Integer repinCount;
        @JsonProperty("repin_time")
        private Integer repinTime;
        @JsonProperty("req_id")
        private String reqId;
        @JsonProperty("share_count")
        private Integer shareCount;
        @JsonProperty("share_info")
        private ShareInfoDTO shareInfo;
        @JsonProperty("share_large_image")
        private ShareLargeImageDTO shareLargeImage;
        @JsonProperty("share_url")
        private String shareUrl;
        @JsonProperty("show_max_line")
        private Integer showMaxLine;
        @JsonProperty("source")
        private String source;
        @JsonProperty("source_icon_style")
        private Integer sourceIconStyle;
        @JsonProperty("source_open_url")
        private String sourceOpenUrl;
        @JsonProperty("subject_group_id")
        private Integer subjectGroupId;
        @JsonProperty("tag")
        private String tag;
        @JsonProperty("tag_id")
        private Long tagId;
        @JsonProperty("tc_head_text")
        private String tcHeadText;
        @JsonProperty("tip")
        private Integer tip;
        @JsonProperty("title")
        private String title;
        @JsonProperty("url")
        private String url;
        @JsonProperty("user_bury")
        private Boolean userBury;
        @JsonProperty("user_digg")
        private Boolean userDigg;
        @JsonProperty("user_info")
        private UserInfoDTO userInfo;
        @JsonProperty("user_like")
        private Integer userLike;
        @JsonProperty("user_repin")
        private Boolean userRepin;
        @JsonProperty("user_repin_time")
        private Integer userRepinTime;
        @JsonProperty("user_verified")
        private Integer userVerified;
        @JsonProperty("verified_content")
        private String verifiedContent;
        @JsonProperty("video_duration")
        private Integer videoDuration;
        @JsonProperty("video_style")
        private Integer videoStyle;
        @JsonProperty("ban_bury")
        private Integer banBury;
        @JsonProperty("ugc_recommend")
        private UgcRecommendDTO ugcRecommend;
        @JsonProperty("share_type")
        private Integer shareType;

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class FilterWordsDTO {
            @JsonProperty("action_extra")
            private String actionExtra;
            @JsonProperty("filter_words")
            private List<FilterWordDTO> filterWords;
            @JsonProperty("show_dislike")
            private Boolean showDislike;

            @lombok.NoArgsConstructor
            @lombok.Data
            public static class FilterWordDTO {
                @JsonProperty("id")
                private String id;
                @JsonProperty("is_selected")
                private Boolean isSelected;
                @JsonProperty("name")
                private String name;
            }
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class ForwardInfoDTO {
            @JsonProperty("forward_count")
            private Integer forwardCount;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class LogPbDTO {
            @JsonProperty("ai_type")
            private String aiType;
            @JsonProperty("author_id")
            private String authorId;
            @JsonProperty("cell_layout_style")
            private String cellLayoutStyle;
            @JsonProperty("group_source")
            private String groupSource;
            @JsonProperty("impr_id")
            private String imprId;
            @JsonProperty("is_customized_cover")
            private String isCustomizedCover;
            @JsonProperty("is_following")
            private String isFollowing;
            @JsonProperty("is_portrait_shown")
            private String isPortraitShown;
            @JsonProperty("is_yaowen")
            private String isYaowen;
            @JsonProperty("logpb_group_id")
            private String logpbGroupId;
            @JsonProperty("sentinel_type")
            private String sentinelType;
            @JsonProperty("ui_style")
            private String uiStyle;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class MediaInfoDTO {
            @JsonProperty("avatar_url")
            private String avatarUrl;
            @JsonProperty("id")
            private String id;
            @JsonProperty("media_id")
            private Long mediaId;
            @JsonProperty("name")
            private String name;
            @JsonProperty("user_id")
            private String userId;
            @JsonProperty("user_verified")
            private Boolean userVerified;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class MiddleImageDTO {
            @JsonProperty("height")
            private Integer height;
            @JsonProperty("uri")
            private String uri;
            @JsonProperty("url")
            private String url;
            @JsonProperty("url_list")
            private List<UrlListDTO> urlList;
            @JsonProperty("width")
            private Integer width;

            @lombok.NoArgsConstructor
            @lombok.Data
            public static class UrlListDTO {
                @JsonProperty("url")
                private String url;
            }
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class OptionalDataDTO {
            @JsonProperty("ban_download")
            private String banDownload;
            @JsonProperty("keynews_expire_time")
            private String keynewsExpireTime;
            @JsonProperty("yunyu_type")
            private String yunyuType;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class ShareInfoDTO {
            @JsonProperty("on_suppress")
            private Integer onSuppress;
            @JsonProperty("share_type")
            private ShareTypeDTO shareType;
            @JsonProperty("share_url")
            private String shareUrl;
            @JsonProperty("title")
            private String title;
            @JsonProperty("token_type")
            private Integer tokenType;

            @lombok.NoArgsConstructor
            @lombok.Data
            public static class ShareTypeDTO {
                @JsonProperty("pyq")
                private Integer pyq;
                @JsonProperty("qq")
                private Integer qq;
                @JsonProperty("qzone")
                private Integer qzone;
                @JsonProperty("wx")
                private Integer wx;
            }
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class ShareLargeImageDTO {
            @JsonProperty("height")
            private Integer height;
            @JsonProperty("uri")
            private String uri;
            @JsonProperty("url")
            private String url;
            @JsonProperty("url_list")
            private List<UrlListDTO> urlList;
            @JsonProperty("width")
            private Integer width;

            @lombok.NoArgsConstructor
            @lombok.Data
            public static class UrlListDTO {
                @JsonProperty("url")
                private String url;
            }
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class UserInfoDTO {
            @JsonProperty("avatar_url")
            private String avatarUrl;
            @JsonProperty("description")
            private String description;
            @JsonProperty("follow")
            private Boolean follow;
            @JsonProperty("live_info_type")
            private Integer liveInfoType;
            @JsonProperty("name")
            private String name;
            @JsonProperty("user_auth_info")
            private String userAuthInfo;
            @JsonProperty("user_decoration")
            private String userDecoration;
            @JsonProperty("user_id")
            private String userId;
            @JsonProperty("user_verified")
            private Boolean userVerified;
            @JsonProperty("verified_content")
            private String verifiedContent;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class UgcRecommendDTO {
            @JsonProperty("activity")
            private String activity;
            @JsonProperty("reason")
            private String reason;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class ActionListDTO {
            @JsonProperty("action")
            private Integer action;
        }

        @lombok.NoArgsConstructor
        @lombok.Data
        public static class ImageListDTO {
            @JsonProperty("height")
            private Integer height;
            @JsonProperty("uri")
            private String uri;
            @JsonProperty("url")
            private String url;
            @JsonProperty("url_list")
            private List<UrlListDTO> urlList;
            @JsonProperty("width")
            private Integer width;

            @lombok.NoArgsConstructor
            @lombok.Data
            public static class UrlListDTO {
                @JsonProperty("url")
                private String url;
            }
        }
    }
}
